home *** CD-ROM | disk | FTP | other *** search
/ CD/PC Actual Thematic 7: Programming / CDAT7.iso / demos / VisualAge for Java 2.0 Entry / setup / data1.cab / ide-e / IDE / cache / 1UA2DT0 (.txt) < prev    next >
Encoding:
Java Class File  |  1998-09-16  |  5.6 KB  |  180 lines

  1. package com.sun.java.swing;
  2.  
  3. import com.sun.java.swing.event.CellEditorListener;
  4. import com.sun.java.swing.event.ChangeEvent;
  5. import com.sun.java.swing.event.EventListenerList;
  6. import com.sun.java.swing.table.TableCellEditor;
  7. import com.sun.java.swing.tree.TreeCellEditor;
  8. import java.awt.Component;
  9. import java.awt.event.MouseEvent;
  10. import java.io.Serializable;
  11. import java.util.EventObject;
  12.  
  13. public class DefaultCellEditor implements TableCellEditor, TreeCellEditor, Serializable {
  14.    protected EventListenerList listenerList = new EventListenerList();
  15.    protected transient ChangeEvent changeEvent = null;
  16.    protected JComponent editorComponent;
  17.    protected EditorDelegate delegate;
  18.    protected int clickCountToStart = 1;
  19.    static Class class$com$sun$java$swing$event$CellEditorListener;
  20.  
  21.    public DefaultCellEditor(JCheckBox x) {
  22.       this.editorComponent = x;
  23.       this.delegate = new 1(this);
  24.       ((JCheckBox)this.editorComponent).addActionListener(this.delegate);
  25.    }
  26.  
  27.    public DefaultCellEditor(JComboBox x) {
  28.       this.editorComponent = x;
  29.       this.delegate = new 2(this);
  30.       ((JComboBox)this.editorComponent).addItemListener(this.delegate);
  31.    }
  32.  
  33.    public DefaultCellEditor(JTextField x) {
  34.       this.editorComponent = x;
  35.       this.clickCountToStart = 2;
  36.       this.delegate = new 3(this);
  37.       ((JTextField)this.editorComponent).addActionListener(this.delegate);
  38.    }
  39.  
  40.    public void addCellEditorListener(CellEditorListener l) {
  41.       EventListenerList var10000 = this.listenerList;
  42.       Class var10001 = class$com$sun$java$swing$event$CellEditorListener;
  43.       if (var10001 == null) {
  44.          try {
  45.             var10001 = Class.forName("com.sun.java.swing.event.CellEditorListener");
  46.          } catch (ClassNotFoundException var2) {
  47.             throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  48.          }
  49.  
  50.          class$com$sun$java$swing$event$CellEditorListener = var10001;
  51.       }
  52.  
  53.       var10000.add(var10001, l);
  54.    }
  55.  
  56.    public void cancelCellEditing() {
  57.       this.delegate.cancelCellEditing();
  58.       this.fireEditingCanceled();
  59.    }
  60.  
  61.    protected void fireEditingCanceled() {
  62.       Object[] listeners = this.listenerList.getListenerList();
  63.  
  64.       for(int i = listeners.length - 2; i >= 0; i -= 2) {
  65.          Object var10000 = listeners[i];
  66.          Class var10001 = class$com$sun$java$swing$event$CellEditorListener;
  67.          if (var10001 == null) {
  68.             try {
  69.                var10001 = Class.forName("com.sun.java.swing.event.CellEditorListener");
  70.             } catch (ClassNotFoundException var3) {
  71.                throw new NoClassDefFoundError(((Throwable)var3).getMessage());
  72.             }
  73.  
  74.             class$com$sun$java$swing$event$CellEditorListener = var10001;
  75.          }
  76.  
  77.          if (var10000 == var10001) {
  78.             if (this.changeEvent == null) {
  79.                this.changeEvent = new ChangeEvent(this);
  80.             }
  81.  
  82.             ((CellEditorListener)listeners[i + 1]).editingCanceled(this.changeEvent);
  83.          }
  84.       }
  85.  
  86.    }
  87.  
  88.    protected void fireEditingStopped() {
  89.       Object[] listeners = this.listenerList.getListenerList();
  90.  
  91.       for(int i = listeners.length - 2; i >= 0; i -= 2) {
  92.          Object var10000 = listeners[i];
  93.          Class var10001 = class$com$sun$java$swing$event$CellEditorListener;
  94.          if (var10001 == null) {
  95.             try {
  96.                var10001 = Class.forName("com.sun.java.swing.event.CellEditorListener");
  97.             } catch (ClassNotFoundException var3) {
  98.                throw new NoClassDefFoundError(((Throwable)var3).getMessage());
  99.             }
  100.  
  101.             class$com$sun$java$swing$event$CellEditorListener = var10001;
  102.          }
  103.  
  104.          if (var10000 == var10001) {
  105.             if (this.changeEvent == null) {
  106.                this.changeEvent = new ChangeEvent(this);
  107.             }
  108.  
  109.             ((CellEditorListener)listeners[i + 1]).editingStopped(this.changeEvent);
  110.          }
  111.       }
  112.  
  113.    }
  114.  
  115.    public Object getCellEditorValue() {
  116.       return this.delegate.getCellEditorValue();
  117.    }
  118.  
  119.    public int getClickCountToStart() {
  120.       return this.clickCountToStart;
  121.    }
  122.  
  123.    public Component getComponent() {
  124.       return this.editorComponent;
  125.    }
  126.  
  127.    public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
  128.       this.delegate.setValue(value);
  129.       return this.editorComponent;
  130.    }
  131.  
  132.    public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) {
  133.       String stringValue = tree.convertValueToText(value, isSelected, expanded, leaf, row, false);
  134.       this.delegate.setValue(stringValue);
  135.       return this.editorComponent;
  136.    }
  137.  
  138.    public boolean isCellEditable(EventObject anEvent) {
  139.       return anEvent instanceof MouseEvent && ((MouseEvent)anEvent).getClickCount() < this.clickCountToStart ? false : this.delegate.isCellEditable(anEvent);
  140.    }
  141.  
  142.    public void removeCellEditorListener(CellEditorListener l) {
  143.       EventListenerList var10000 = this.listenerList;
  144.       Class var10001 = class$com$sun$java$swing$event$CellEditorListener;
  145.       if (var10001 == null) {
  146.          try {
  147.             var10001 = Class.forName("com.sun.java.swing.event.CellEditorListener");
  148.          } catch (ClassNotFoundException var2) {
  149.             throw new NoClassDefFoundError(((Throwable)var2).getMessage());
  150.          }
  151.  
  152.          class$com$sun$java$swing$event$CellEditorListener = var10001;
  153.       }
  154.  
  155.       var10000.remove(var10001, l);
  156.    }
  157.  
  158.    public void setClickCountToStart(int count) {
  159.       this.clickCountToStart = count;
  160.    }
  161.  
  162.    public boolean shouldSelectCell(EventObject anEvent) {
  163.       boolean retValue = true;
  164.       if (this.isCellEditable(anEvent) && (anEvent == null || ((MouseEvent)anEvent).getClickCount() >= this.clickCountToStart)) {
  165.          retValue = this.delegate.startCellEditing(anEvent);
  166.       }
  167.  
  168.       return retValue;
  169.    }
  170.  
  171.    public boolean stopCellEditing() {
  172.       boolean stopped = this.delegate.stopCellEditing();
  173.       if (stopped) {
  174.          this.fireEditingStopped();
  175.       }
  176.  
  177.       return stopped;
  178.    }
  179. }
  180.